package cn.org.xwb.bookmall.model.service;

import cn.org.xwb.bookmall.model.po.Product;
import cn.org.xwb.bookmall.model.vo.ProductConditionVo;
import cn.org.xwb.bookmall.model.vo.ProductVo;
import cn.org.xwb.common.page.dto.PageResult;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 * 商品表 服务类
 * </p>
 *
 * @author xwb
 * @since 2023-11-27
 */
public interface IProductService extends IService<Product> {

    /**
     * 查询并缓存所有商品
     *
     * @return null-发生异常
     */
    List<ProductVo> getAllAndCache();

    /**
     * 从缓存中获取所有，如果缓存不存在，则从数据库中查询，并缓存
     *
     * @return null-发生异常
     */
    List<ProductVo> findAllFromCache();

    PageResult<List<ProductVo>> findProductPage(ProductConditionVo productConditionVo);

    ProductVo selectProductAllById(Long id);

}
